Guild icon
Project Sekai
🔒 RITSEC CTF 2023 / ✅-steganography-bitmap
Avatar
bitmap - 400 points
Sutx pinned a message to this channel. 03/31/2023 9:01 AM
Avatar
@crazyman ai wants to collaborate 🤝
Avatar
@hfz wants to collaborate 🤝
Avatar
pure guessing
10:45
10:45
10:45
array([[[179, 189, 255], [185, 168, 176], [183, 172, 182], [186, 180, 160], [216, 194, 166], [182, 173, 160], [186, 172, 171], [216, 160, 188], [223, 223, 223], [169, 182, 223], [189, 216, 194], [168, 176, 179], [172, 182, 185], [223, 216, 183], [223, 223, 223], [187, 176, 178], [188, 194, 186], [223, 188, 189], [223, 223, 223], [194, 177, 182], [167, 186, 183], [223, 223, 223], [170, 176, 223], [183, 194, 171], [223, 167, 186], [223, 223, 223], [175, 182, 188], [173, 186, 183], [172, 170, 215], [182, 223, 186], [183, 223, 177], [214, 167, 186], [155, 216, 194], [245, 164, 187], [ 64, 78, 212], [ 39, 101, 90], [216, 9, 202], [ 99, 178, 158], [ 29, 76, 46], [ 4, 123, 172], [ 82, 47, 243], [211, 104, 182], [237, 92, 229], [255, 216, 255]]], dtype=uint8)
10:45
we need GM
Avatar
@rubiya wants to collaborate 🤝
Avatar
time to rename teamname to guessctf then vote 1
Avatar
did a few times before lol
10:52
its so bad
Avatar
Avatar
hfz
Click to see attachment 🖼️
what is this
13:07
like how did you get the array from this image?
Avatar
I justed cropped it
13:07
and grabbed the pixels
Avatar
@Guesslemonger wants to collaborate 🤝
Avatar
Guesslemonger 03/31/2023 1:16 PM
subtract all from 255?
13:16
give me the string
Avatar
that array?
13:17
hold on
13:19
there're a lot of 255 there
13:19
subtracting makes 0
13:20
[76, 66, 0, 70, 87, 79, 72, 83, 73, 69, 75, 95, 39, 61, 89, 73, 82, 95, 69, 83, 84, 39, 95, 67, 32, 32, 32, 86, 73, 32, 66, 39, 61, 87, 79, 76, 83, 73, 70, 32, 39, 72, 32, 32, 32, 68, 79, 77, 67, 61, 69, 32, 67, 66, 32, 32, 32, 61, 78, 73, 88, 69, 72, 32, 32, 32, 85, 79, 32, 72, 61, 84, 32, 88, 69, 32, 32, 32, 80, 73, 67, 82, 69, 72, 83, 85, 40, 73, 32, 69, 72, 32, 78, 41, 88, 69, 100, 39, 61, 10, 91, 68, 191, 177, 43, 216, 154, 165, 39, 246, 53, 156, 77, 97, 226, 179, 209, 251, 132, 83, 173, 208, 12, 44, 151, 73, 18, 163, 26, 0, 39, 0]
13:21
makes no sense i think
13:21
"LB\x00FWOHSIEK_'=YIR_EST'_C VI B'=WOLSIF 'H DOMC=E CB =NIXEH UO H=T XE PICREHSU(I EH N)XEd'=\n[D¿±+Ø\x9a¥'ö5\x9cMaâ³Ñû\x84S\xadÐ\x0c,\x97I\x12£\x1a\x00'\x00"
Avatar
Avatar
hfz
I justed cropped it
crop as using windows tool?
13:37
will it be the same?
Avatar
Avatar
sahuang
crop as using windows tool?
inside gimp
Avatar
Guesslemonger 03/31/2023 1:37 PM
i guess we need to get what bits to take from flag format
Avatar
yes, it's same
Avatar
Guesslemonger 03/31/2023 1:43 PM
well zsteg says xor by ff
13:43
so it should be that
13:47
[179, 189, 255, 185, 168, 176, 183, 172, 182, 186, 180, 160, 216, 194, 166, 182, 173, 160, 186, 172, 171, 216, 160, 188, 223, 223, 223, 169, 182, 223, 189, 216, 194, 168, 176, 179, 172, 182, 185, 223, 216, 183, 223, 223, 223, 187, 176, 178, 188, 194, 186, 223, 188, 189, 223, 223, 223, 194, 177, 182, 167, 186, 183, 223, 223, 223, 170, 176, 223, 183, 194, 171, 223, 167, 186, 223, 223, 223, 175, 182, 188, 173, 186, 183, 172, 170, 215, 182, 223, 186, 183, 223, 177, 214, 167, 186, 155, 216, 194, 245, 164, 187, 64, 78, 212, 39, 101, 90, 216, 9, 202, 99, 178, 158, 29, 76, 46, 4, 123, 172, 82, 47, 243, 211, 104, 182, 237, 92, 229, 255, 216, 255]
13:47
original data
13:50
i think probably one color is one flag char? (edited)
13:50
so we shouldnt group them
13:50
like 179, 189, 255 -> R 185, 168, 176 -> S
13:51
but maybe not
13:51
could be some data then decoded to flag
13:52
44 color blocks
Avatar
Guesslemonger 03/31/2023 1:54 PM
yeah, 1 set should be a char, 223,223,233 should be _
Avatar
why 223,223,223 is _
13:55
ah guessed?
Avatar
Guesslemonger 03/31/2023 1:55 PM
it repeats quite a bit
Avatar
right
Avatar
Guesslemonger 03/31/2023 1:56 PM
maybe not, repeats quite close by
Avatar
nothing else is repeated
Avatar
Guesslemonger 03/31/2023 1:58 PM
yeah, not the way
Avatar
@hfz alpha channel is all 255?
Avatar
yeah idk so weird lol
Avatar
3 solves smh
Avatar
yeah
14:28
guessing stuff
14:29
thc solved both 500 pt pwns so prob they are more doable technically 🤣
14:29
gonna wait till pwn guy wake up
Avatar
I feel like I'm close with Alphabet but I'm getting dizzy lmao
Avatar
Avatar
sahuang
gonna wait till pwn guy wake up
Piers? 💀
Avatar
idk he isnt in this chat
Avatar
@hfz i downloaded the RGBA's in this whole QR, some parts are different
15:14
the alpha channel?
15:14
no the rgb
Avatar
like the 6,6,6
Avatar
did cropping cause things to break?
Avatar
they are from black and whites
15:14
not that color block i think
Avatar
ah, yes, the gray stuff
Avatar
ill try extract all different ones
15:15
aka non 0,0,0 or 255,255,255
Avatar
@Deleted User wants to collaborate 🤝
Avatar
yeah alpha all 255
15:18
that color block must be there for a reason
15:19
there're a LOT of pixels not pure black or white
Avatar
@kanon wants to collaborate 🤝
Avatar
ok i guess those are the "grays"
15:20
so we still should not count those
Avatar
Avatar
hfz
array([[[179, 189, 255], [185, 168, 176], [183, 172, 182], [186, 180, 160], [216, 194, 166], [182, 173, 160], [186, 172, 171], [216, 160, 188], [223, 223, 223], [169, 182, 223], [189, 216, 194], [168, 176, 179], [172, 182, 185], [223, 216, 183], [223, 223, 223], [187, 176, 178], [188, 194, 186], [223, 188, 189], [223, 223, 223], [194, 177, 182], [167, 186, 183], [223, 223, 223], [170, 176, 223], [183, 194, 171], [223, 167, 186], [223, 223, 223], [175, 182, 188], [173, 186, 183], [172, 170, 215], [182, 223, 186], [183, 223, 177], [214, 167, 186], [155, 216, 194], [245, 164, 187], [ 64, 78, 212], [ 39, 101, 90], [216, 9, 202], [ 99, 178, 158], [ 29, 76, 46], [ 4, 123, 172], [ 82, 47, 243], [211, 104, 182], [237, 92, 229], [255, 216, 255]]], dtype=uint8)
this should be correct, shouldn't be any other info on the bmp file
Avatar
Yeah, there's something else that caught my attention at first when I read the challenge description (some squares aren't like the others)
15:32
some black squares of the QR code appear slightly bigger
15:32
idk if intended or just compression stuff
Avatar
i think just the colored pixels matter
Avatar
@Iyed wants to collaborate 🤝
Avatar
@afterworld wants to collaborate 🤝
17:17
those are the only ones that seem not like others
17:18
but there isn't anything helpful with it ig
Avatar
did you get anything out of the color pixels?
17:18
i still think that's the flag related
17:18
the QR code is just rickroll so likely doesn tmatter..
Avatar
I'm still guessing
17:18
it redirects to some ip logger
17:18
before redirecting to youtube
Avatar
oh really
Avatar
HTTP/2 301 date: Fri, 31 Mar 2023 23:46:50 GMT content-type: text/html; charset=UTF-8 location: https://grabify.link/DSAU3W cache-control: max-age=0, public, s-max-age=900, stale-if-error: 86400 referrer-policy: unsafe-url x-tinyurl-redirect: eyJpdiI6IkhWQWkyMU83MzdQVStLQzQ1a2RjMHc9PSIsInZhbHVlIjoiTEI5K0YvYUQ3YW45M3hDZHA2Z1J5aHovbTFCOEl5NkdzaGF2cVJIYzNxY1BBKzQrcmlSUUxEMVF5QkJvOFkrVjBaQ0VtaHRwZ0VRaTkzZENBRzVGVGc9PSIsIm1hYyI6ImM4NmNjNzBlM2FhNmJlYjZkMTUyOGQ4N2VjYTA0ODBmMTk5NmVkZjBmMDZmOTczMTk1YmIxMmRhZGY3ZTllZWQiLCJ0YWciOiIifQ== x-content-type-options: nosniff x-xss-protection: 1; mode=block cf-cache-status: DYNAMIC server: cloudflare cf-ray: 7b0c7953ed2aeee4-ATH alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta http-equiv="refresh" content="0;url='https://grabify.link/DSAU3W'" /> <title>Redirecting to https://grabify.link/DSAU3W</title> </head> <body> Redirecting to <a href="https://grabify.link/DSAU3W">https://grabify.link/DSAU3W</a>. </body> </html>
Avatar
this is the QR code scanned data?
Avatar
a curl request to the tinyurl link that is provided when I scan the QR code
17:20
I don't think that's helpful tho but why ip logging
Avatar
not sure if its related
Avatar
i asked author it's not related
Avatar
Avatar
hfz
array([[[179, 189, 255], [185, 168, 176], [183, 172, 182], [186, 180, 160], [216, 194, 166], [182, 173, 160], [186, 172, 171], [216, 160, 188], [223, 223, 223], [169, 182, 223], [189, 216, 194], [168, 176, 179], [172, 182, 185], [223, 216, 183], [223, 223, 223], [187, 176, 178], [188, 194, 186], [223, 188, 189], [223, 223, 223], [194, 177, 182], [167, 186, 183], [223, 223, 223], [170, 176, 223], [183, 194, 171], [223, 167, 186], [223, 223, 223], [175, 182, 188], [173, 186, 183], [172, 170, 215], [182, 223, 186], [183, 223, 177], [214, 167, 186], [155, 216, 194], [245, 164, 187], [ 64, 78, 212], [ 39, 101, 90], [216, 9, 202], [ 99, 178, 158], [ 29, 76, 46], [ 4, 123, 172], [ 82, 47, 243], [211, 104, 182], [237, 92, 229], [255, 216, 255]]], dtype=uint8)
so probably still focus on this 44 pixels
Avatar
@Y4nhu1 wants to collaborate 🤝
Avatar
Guesslemonger 03/31/2023 8:46 PM
no admin SE?
Avatar
dont know author
Avatar
Avatar
sahuang
i asked author it's not related
Guesslemonger 03/31/2023 8:47 PM
?
Avatar
its admin
20:47
not author
20:48
find this in bitmap.bmp
Avatar
xor with 0xff?
20:48
didnt we do that
20:48
hmmmm
Avatar
Guesslemonger 03/31/2023 8:48 PM
yes i already wrote above, zsteg gives this
Avatar
Guesslemonger 03/31/2023 8:49 PM
i also tried xoring with string 'FF'
20:50
8 solves, lol
Avatar
i think they meant 255 cuz thats natural for pixel values
Avatar
Guesslemonger 03/31/2023 8:50 PM
guess game weak
Avatar
76 66 0 70 87 79 72 83 73 69 75 95 39 61 89 73 82 95 69 83 84 39 95 67 32 32 32 86 73 32 66 39 61 87 79 76 83 73 70 32 39 72 32 32 32 68 79 77 67 61 69 32 67 66 32 32 32 61 78 73 88 69 72 32 32 32 85 79 32 72 61 84 32 88 69 32 32 32 80 73 67 82 69 72 83 85 40 73 32 69 72 32 78 41 88 69 100 39 61 10 91 68 191 177 43 216 154 165 39 246 53 156 77 97 226 179 209 251 132 83 173 208 12 44 151 73 18 163 26 0 39 0 After ^ 0xff btw
Avatar
Guesslemonger 03/31/2023 8:53 PM
it's most likely decimal to ascii, can form some words lsb, pictures but seems jumbled (edited)
Avatar
what lsb
20:54
the second half is weird because values are small and then a lot of >127 values
Avatar
Guesslemonger 03/31/2023 8:55 PM
it's aes, can see mode = ecb, iv
20:55
in there
Avatar
i didnt see any AES
20:56
oh
20:56
well i didnt see "aes" still
20:56
after convertting to ascii
Avatar
Guesslemonger 03/31/2023 8:57 PM
we need to read in a certain way I guess
Avatar
how did you read aes
20:58
i didnt see it
Avatar
Guesslemonger 03/31/2023 8:58 PM
i saw VI, DOMC=E CB
20:58
mode = cbc
Avatar
Guesslemonger 03/31/2023 8:58 PM
jumbled (edited)
Avatar
right
Avatar
Avatar
Guesslemonger
we need to read in a certain way I guess
Guesslemonger 03/31/2023 8:59 PM
so yeah
Avatar
the second half is likely iv/ciphertext then
20:59
or key
Avatar
Guesslemonger 03/31/2023 8:59 PM
iv is also text, key is also text
20:59
part after 10 is cipher
Avatar
printable ascii?
Avatar
Guesslemonger 03/31/2023 8:59 PM
yes
Avatar
ah yeah
Avatar
Guesslemonger 03/31/2023 8:59 PM
just have to jumble
Avatar
weird thing is there's 0 in first vector
Avatar
Guesslemonger 03/31/2023 9:00 PM
they just had to have it because full thing might not be divisible by 3 😛
21:01
try it now, should be gettable, gotta go
Avatar
LBFWOHSIEK_'=YIR_EST'_CVIB'=WOLSIF'HDOMC=ECB=NIXEHUOH=TXEPICREHSU(IEHN)XEd'=
21:02
printable part
21:02
looks promising
21:02
there is base64 there in ''
21:02
not base64
21:02
but length 8
21:04
oh that = is like key=xxx iv=xxx ciphertext=xxx maybe
21:05
oh
21:05
found it out
21:05
lol
Avatar
yeah
21:05
i think i can solve
Avatar
nice, what was it?
Avatar
BLOWFISH_KEY='_RITSEC_' IV='BLOWFISH' MODE=CBC IN=HEX OUT=HEX CIPHER(USE IN HEX)='d (edited)
😆 2
21:06
rot13?
Avatar
LOL
Avatar
this is first part
21:07
last part i havent finished cuz they arent printable
21:07
need to convert to hex
Avatar
Avatar
sahuang
need to convert to hex
b"BLOWFISH_KEY='_RITSEC_' IV='BLOWFISH' MODE=CBC IN=HEX OUT=HEX CIPHER(USE IN HEX)='dD[\n+\xb1\xbf\xa5\x9a\xd85\xf6'aM\x9c\xd1\xb3\xe2S\x84\xfb\x0c\xd0\xadI\x97,\x1a\xa3\x12\x00'" (edited)
Avatar
thats wrong order
21:08
[::-1] for each row
21:08
and remove first \x00 and last \x00
21:10
last part is a bit weird cuz length isnt exactly 64
21:10
that 'd' is converted from char for "100"
21:10
but later they need hex
21:13
445b0a2bb1bfa59ad835f627614d9cd1b3e25384fb0cd0ad49972c1aa3120027 is already length 64, but this didnt include the "d"
21:14
ok got it
Avatar
Avatar
sahuang
used /ctf submit
✅ Well done, challenge solved!
Avatar
nice, wp
Avatar
64445b0a2bb1bfa59ad835f627614d9cd1b3e25384fb0cd0ad49972c1aa31200
21:15
for ct
Avatar
cipher = b"dD[\n+\xb1\xbf\xa5\x9a\xd85\xf6\'aM\x9c\xd1\xb3\xe2S\x84\xfb\x0c\xd0\xadI\x97,\x1a\xa3\x12\x00"
Avatar
no not d
21:16
100->0x64
21:16
ah yeah you didnt do it in hex
Avatar
this cipher worked for me
21:16
yeah, not hex
Avatar
convert to hex and online tool ez solve
Avatar
>>> from Crypto.Cipher import Blowfish >>> cipher = b"dD[\n+\xb1\xbf\xa5\x9a\xd85\xf6\'aM\x9c\xd1\xb3\xe2S\x84\xfb\x0c\xd0\xadI\x97,\x1a\xa3\x12\x00" >>> b = Blowfish.new(b"_RITSEC_", Blowfish.MODE_CBC, iv=b"BLOWFISH") >>> b.decrypt(cipher) b'RS{CONSIDER_THESE_BITS_MAPPED}\x02\x02' >>>
Avatar
python ftw xd
Avatar
Guesslemonger 03/31/2023 9:18 PM
Nice, guess game strong
Avatar
yeah lol
Exported 203 message(s)